#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int main()
{
  int g_val = 100;
  printf("father is running,pid:%d,ppid:%d\n",getpid(),getppid());

  pid_t id = fork();
  if(id == 0)
  {
    //child
    int cnt = 0;
    while(1)
    {
      printf("I am child process,pid:%d,ppid:%d,g_val=%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
      sleep(1);
      cnt++;
      if(cnt == 5)
      {
        g_val = 300;
        printf("I am child process,change %d -> %d\n",100,300);
      }
    }
  }
  else
  {
    //father 
    while(1)
    {
      printf("I am father process,pid:%d,ppid:%d,g_val=%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
      sleep(1);
    }
  }


  return 0;
}



//int main(int argc,char* argv[],char* env[])
//{
//  char* pth = getenv("HELLO");
//  if(pth == NULL) return 1;
//  printf("path:%s\n",pth);
//  //int i=0;
//  //for(i=0;env[i];i++)
//  //{
//  //  printf("env[%d]->%si\n",i,env[i]);
//  //}
//
//  return 0;
//}

//int main()
//{
//  int i=0;
//  extern char** environ;
//  for(i=0;environ[i];i++)
//  {
//    printf("env[%d]->%s\n",i,environ[i]);
//  }
//
//}

//int g_val=10000;
//int main()
//{
//  printf("I am father process,pid:%d,ppid:%d,g_val:%d\n",getpid(),getppid(),g_val);
//  sleep(5);
//
//  pid_t id = fork();
//  if(id == 0)
//  {
//    //child
//    while(1)
//    { 
//      printf("I am child process,pid:%d,ppid:%d,g_val:%d\n",getpid(),getppid(),g_val);
//      sleep(1);
//    }
//  }
//  else
//  {
//    //father
//    while(1)
//    { 
//      printf("I am father process,pid:%d,ppid:%d,g_val:%d\n",getpid(),getppid(),g_val);
//      sleep(1);
//    }
//  }
//
//  return 0;
//}

//int main(int argc,char* argv[])
//{
//  if(argc != 2)
//  {
//    printf("Usage:%s -[a,b,c,d]\n",argv[0]);
//    return 1;
//  }
//  if(strcmp(argv[1],"-a")==0)
//  {
//    printf("this is function1\n");
//  }
//  else if(strcmp(argv[1],"-b")==0)
//  {
//    printf("this is function2\n");
//  }
// else if(strcmp(argv[1],"-c")==0)
//  {
//    printf("this is function3\n");
//  }
//  else if(strcmp(argv[1],"-d")==0)
//  {
//    printf("this is function4\n");
//  }
//  else
//  {
//    printf("no this function\n");
//  }
// // size_t i=0;
// // for(i=0;i<argc;i++)
// // {
// //   printf("argv[%d]:%s\n",i,argv[i]);
// // }
//
//  return 0;
//}
